#include <Arduino.h>
#include <Debuglog.h>

SeqQueue DebuglogQueue;

 


SeqQueue* InitQueue(SeqQueue* q)
{	
	q->front = q->rear = 0; // 初始化rear和front，队列为空
	// printf("循环队列已经创建完毕\n");
	return q;
}


// ii、判断队空操作：

bool QueueEmpty(SeqQueue* q)
{
	if (q->rear == q->front)  // 判断队空
		return true;
	return false;
}

// 入队操作：
bool EnQueue(SeqQueue* q, DataType x)
{
	if ((q->rear+1) % MAXSIZE == q->front) // 判断队满
	{
		// printf("循环队列已满！\n");
		return false;
	}
	q->data[q->rear] = x; // 入队
	q->rear = (q->rear + 1) % MAXSIZE; // 更新rear
	return true;
}

// iv、出队操作：

DataType DeQueue(SeqQueue* q)
{
	DataType x; // 出队元素的值
	if (q->rear == q->front)  // 判断队空
	{
		// printf("队列为空！不能进行删除操作\n");
		return "";
	}
	x = q->data[q->front]; // 出队
	q->front = (q->front + 1) % MAXSIZE; // 更新front
	return x;
}


void DebuglogAdd(String msg)
{
  // if (Debuglog.length() < 1000)
  //  {Debuglog+= msg.substring(0,5)+"\n";} 
  if (msg.length() > 1)
  EnQueue(&DebuglogQueue, msg.substring(0,10));
}
String DebuglogGet(void)
{
  return DeQueue(&DebuglogQueue);
}